from torch import nn

'''定义神经网络模块，用于特征提取'''
class ConvBNRelu(nn.Module):
    '''
    in_channels:输入特征图的通道数
    out_channels:输出特征图的通道数
    kernel_size:卷积核大小
    stride:卷积步长
    padding:在特征图边缘填充一圈像素，保证输出的特征图与输入的特征图完全相同
    '''
    def __init__(self, channels_in, channels_out, stride=1):
        super().__init__()
        '''
        分别定义了二维卷积层
        二维批归一化层
        ReLU激活函数层
        '''
        self.layers = nn.Sequential(
            nn.Conv2d(channels_in, channels_out, 3, stride, padding=1),
            nn.BatchNorm2d(channels_out),
            nn.ReLU(inplace=True)
        )

    def forward(self,x):
        return self.layers(x)

